<?xml version="1.0" encoding="utf-8" ?>
<!--
    Copyright (c) 2018-2020 Qualcomm Technologies, Inc.
    All Rights Reserved.
    Confidential and Proprietary - Qualcomm Technologies, Inc.

    Not a Contribution.

    Copyright (C) 2012-2018 The Linux Foundation. All rights reserved.
    Copyright (C) 2012-2013 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->

<!--
 Non-Secure decoder capabilities
 (MB is defined as 16x16)
 _____________________________________________________________________
 | Codec       | W       H       fps     Mbps    MB/s        Max MB/s|
 |_____________|_____________________________________________________|
 |             | 4096    2304    60      220     2211840             |
 |             | 4096    2160    96      220     3317760             |
 |h264/hevc/vp9| 3820    2160    120     220     3888000             |
 |             | 1920    1088    480     220     3916800     3916800 |
 |             | 1280    720     480     220     1728000             |
 |             | 720     480     480     220     648000              |
 |             |                                                     |
 |             | 4096    2304    24      100     884736              |
 |             | 4096    2160    30      100     1036800             |
 | vp8         | 3840    2160    30      100     972000      1036800 |
 |             | 1920    1088    120     100     979200              |
 |             | 1280    720     240     100     864000              |
 |             | 1280    720     240     100     864000              |
 |_____________|_____________________________________________________|

 Secure decoder capabilities
 (MB is defined as 16x16)
 ____________________________________________________________________
 | Codec       | W       H       fps     Mbps    MB/s        Max MB/s|
 |_____________|_____________________________________________________|
 |             | 4096    2304    30      40      1105920             |
 |             | 4096    2160    60      40      2073600             |
 |h264/hevc/vp9| 3840    2160    60      40      1944000    2073600  |
 |             | 1920    1088    60      40      489600              |
 |             | 1280    720     60      40      216000              |
 |_____________|_____________________________________________________|

 Non-Secure encoder capabilities (Secure not supported)
 (MB is defined as 16x16)
 __________________________________________________________________
 | Codec    | W       H       fps     Mbps    MB/s        Max MB/s|
 |__________|_____________________________________________________|
 |          | 4096    2304    56      160     2064384             |
 |          | 4096    2160    60      160     2073600             |
 |h264/hevc | 3840    2160    60      160     1944000     2073600 |
 |          | 1920    1088    240     160     1958400             |
 |          | 1280    720     480     160     1728000             |
 |          | 720     480     480     160     648000              |
 |          |                                                     |

 |          | 8192    4320    3       160     138240              |
 |          | 7680    4320    3       160     138240              |
 |          | 4096    2304    12      160     307200              |
 | heic     | 4096    2160    12      160     307200      2073600 |
 |          | 3840    2160    12      160     307200              |
 |          | 1920    1088    40      160     1944000             |
 |          | 1280    720     80      160     819200              |
 |          | 720     480     240     160     1228800             |
 |          |                                                     |
 |          | 4096    2304    24      40      884736              |
 |          | 4096    2160    30      40      1036800             |
 | vp8      | 3840    2160    30      40      972000      1036800 |
 |          | 1920    1088    120     40      979200              |
 |          | 1280    720     240     40      864000              |
 |          | 720     480     240     40      648000              |
 |__________|_____________________________________________________|
-->
<Included>
    <Decoders>
        <MediaCodec name="c2.qti.avc.decoder" type="video/avc">
            <Alias name="OMX.qcom.video.decoder.avc" />
            <Limit name="size" min="96x96" max="4096x4096" />
            <Limit name="block-count" range="36-36864" /> <!--max-spatial: 4096x2304 -->
            <Limit name="alignment" value="2x2" />
            <Limit name="block-size" value="16x16" />
            <Limit name="blocks-per-second" range="1-3916800" />
            <Limit name="bitrate" range="1-220000000" />
            <Limit name="frame-rate" range="1-480" />
            <Limit name="concurrent-instances" max="16" />
            <Limit name="performance-point-4096x2304" value="60" />
            <Limit name="performance-point-4096x2160" value="96" />
            <Limit name="performance-point-3840x2160" value="120" />
            <Limit name="performance-point-1920x1088" range="480" />
            <Limit name="performance-point-1920x1088" range="240" />
            <Limit name="performance-point-1280x720" value="480" />
            <Feature name="adaptive-playback" />
        </MediaCodec>
        <MediaCodec name="c2.qti.avc.decoder.low_latency" type="video/avc">
            <Alias name="OMX.qcom.video.decoder.avc.low_latency" />
            <Limit name="size" min="96x96" max="4096x4096" />
            <Limit name="block-count" range="36-36864" /> <!--max-spatial: 4096x2304 -->
            <Limit name="alignment" value="2x2" />
            <Limit name="block-size" value="16x16" />
            <Limit name="blocks-per-second" range="1-1958400" />
            <Limit name="bitrate" range="1-110000000" />
            <Limit name="frame-rate" range="1-480" />
            <Limit name="concurrent-instances" max="16" />
            <Feature name="low-latency" />
            <Limit name="performance-point-4096x2304" value="60" />
            <Limit name="performance-point-4096x2160" value="96" />
            <Limit name="performance-point-3840x2160" value="120" />
            <Limit name="performance-point-1920x1088" range="480" />
            <Limit name="performance-point-1920x1088" range="240" />
            <Limit name="performance-point-1280x720" value="480" />
            <Feature name="adaptive-playback" />
        </MediaCodec>
        <MediaCodec name="c2.qti.avc.decoder.secure" type="video/avc" >
            <Alias name="OMX.qcom.video.decoder.avc.secure" />
            <Limit name="size" min="96x96" max="4096x4096" />
            <Limit name="block-count" range="36-36864" /> <!--max-spatial: 4096x2304 -->
            <Limit name="alignment" value="2x2" />
            <Limit name="block-size" value="16x16" />
            <Limit name="blocks-per-second" min="1" max="1958400" />
            <Limit name="bitrate" range="1-40000000" />
            <Limit name="frame-rate" range="1-240" />
            <Limit name="concurrent-instances" max="4" />
            <Limit name="performance-point-4096x2304" value="30" />
            <Limit name="performance-point-4096x2160" value="60" />
            <Limit name="performance-point-3840x2160" value="60" />
            <Feature name="adaptive-playback" />
            <Feature name="secure-playback" required="true" />
        </MediaCodec>
        <MediaCodec name="c2.qti.hevc.decoder" type="video/hevc" >
            <Alias name="OMX.qcom.video.decoder.hevc" />
            <Limit name="size" min="96x96" max="4096x4096" />
            <Limit name="block-count" range="36-36864" /> <!--max-spatial: 4096x2304 -->
            <Limit name="alignment" value="2x2" />
            <Limit name="block-size" value="16x16" />
            <Limit name="blocks-per-second" range="1-3916800" />
            <Limit name="bitrate" range="1-220000000" />
            <Limit name="frame-rate" range="1-480" />
            <Limit name="concurrent-instances" max="16" />
            <Limit name="performance-point-4096x2304" value="60" />
            <Limit name="performance-point-4096x2160" value="96" />
            <Limit name="performance-point-3840x2160" value="120" />
            <Limit name="performance-point-1920x1088" range="480" />
            <Limit name="performance-point-1920x1088" range="240" />
            <Limit name="performance-point-1280x720" value="480" />
            <Feature name="adaptive-playback" />
        </MediaCodec>
        <MediaCodec name="c2.qti.hevc.decoder.secure" type="video/hevc" >
            <Alias name="OMX.qcom.video.decoder.hevc.secure" />
            <Limit name="size" min="96x96" max="4096x4096" />
            <Limit name="block-count" range="36-36864" /> <!--max-spatial: 4096x2304 -->
            <Limit name="alignment" value="2x2" />
            <Limit name="block-size" value="16x16" />
            <Limit name="blocks-per-second" min="24" max="2073600" />
            <Limit name="bitrate" range="1-40000000" />
            <Limit name="frame-rate" range="1-60" />
            <Limit name="concurrent-instances" max="4" />
            <Limit name="performance-point-4096x2304" value="30" />
            <Limit name="performance-point-4096x2160" value="60" />
            <Limit name="performance-point-3840x2160" value="60" />
            <Feature name="adaptive-playback" />
            <Feature name="secure-playback" required="true" />
        </MediaCodec>
        <MediaCodec name="c2.qti.vp8.decoder" type="video/x-vnd.on2.vp8" >
            <Alias name="OMX.qcom.video.decoder.vp8" />
            <Limit name="size" min="96x96" max="4096x4096" />
            <Limit name="block-count" range="36-36864" /> <!--max-spatial: 4096x2304 -->
            <Limit name="alignment" value="2x2" />
            <Limit name="block-size" value="16x16" />
            <Limit name="blocks-per-second" range="1-1036800" />
            <Limit name="bitrate" range="1-100000000" />
            <Limit name="frame-rate" range="1-240" />
            <Limit name="concurrent-instances" max="16" />
            <Limit name="performance-point-4096x2304" value="24" />
            <Limit name="performance-point-4096x2160" value="30" />
            <Limit name="performance-point-3840x2160" value="30" />
            <Limit name="performance-point-1920x1080" value="120" />
            <Limit name="performance-point-1280x720" value="240" />
            <Feature name="adaptive-playback" />
        </MediaCodec>
        <MediaCodec name="c2.qti.vp9.decoder" type="video/x-vnd.on2.vp9" >
            <Alias name="OMX.qcom.video.decoder.vp9" />
            <Limit name="size" min="96x96" max="4096x4096" />
            <Limit name="block-count" range="36-36864" /> <!--max-spatial: 4096x2304 -->
            <Limit name="alignment" value="2x2" />
            <Limit name="block-size" value="16x16" />
            <Limit name="blocks-per-second" range="1-3916800" />
            <Limit name="bitrate" range="1-220000000" />
            <Limit name="frame-rate" range="1-480" />
            <Limit name="concurrent-instances" max="6" />
            <Limit name="performance-point-4096x2304" value="60" />
            <Limit name="performance-point-4096x2160" value="96" />
            <Limit name="performance-point-3840x2160" value="120" />
            <Limit name="performance-point-1920x1088" range="480" />
            <Limit name="performance-point-1920x1088" range="240" />
            <Limit name="performance-point-1280x720" value="480" />
            <Feature name="adaptive-playback" />
        </MediaCodec>
        <MediaCodec name="c2.qti.vp9.decoder.secure" type="video/x-vnd.on2.vp9" >
            <Alias name="OMX.qcom.video.decoder.vp9.secure" />
            <Limit name="size" min="96x96" max="4096x2304" />
            <Limit name="block-count" range="36-36864" /> <!--max-spatial: 4096x2304 -->
            <Limit name="alignment" value="2x2" />
            <Limit name="block-size" value="16x16" />
            <Limit name="blocks-per-second" min="24" max="2073600" />
            <Limit name="bitrate" range="1-40000000" />
            <Limit name="frame-rate" range="1-480" />
            <Limit name="concurrent-instances" max="4" />
            <Limit name="performance-point-4096x2304" value="30" />
            <Limit name="performance-point-4096x2160" value="60" />
            <Limit name="performance-point-3840x2160" value="60" />
            <Feature name="adaptive-playback" />
            <Feature name="secure-playback" required="true" />
        </MediaCodec>
    </Decoders>

    <Encoders>
        <MediaCodec name="c2.qti.avc.encoder" type="video/avc">
            <Alias name="OMX.qcom.video.encoder.avc" />
            <Limit name="size" min="96x96" max="4096x4096" />
            <Limit name="block-count" range="36-36864" /> <!--max-spatial: 4096x2304 -->
            <Limit name="alignment" value="2x2" />
            <Limit name="block-size" value="16x16" />
            <Limit name="blocks-per-second" min="24" max="2073600" />
            <Limit name="bitrate" range="1-160000000" />
            <Limit name="frame-rate" range="1-480" />
            <Limit name="concurrent-instances" max="16" />
            <Limit name="performance-point-4096x2304" value="56" />
            <Limit name="performance-point-4096x2160" value="60" />
            <Limit name="performance-point-3840x2160" value="60" />
            <Limit name="performance-point-1920x1080" value="240" />
            <Limit name="performance-point-1280x720" value="480" />
            <Feature name="bitrate-modes" value="VBR,CBR" />
            <Feature name="intra-refresh" />
        </MediaCodec>
        <MediaCodec name="c2.qti.hevc.encoder" type="video/hevc">
            <Alias name="OMX.qcom.video.encoder.hevc" />
            <Limit name="size" min="96x96" max="4096x4096" />
            <Limit name="block-count" range="36-36864" /> <!--max-spatial: 4096x2304 -->
            <Limit name="alignment" value="2x2" />
            <Limit name="block-size" value="16x16" />
            <Limit name="blocks-per-second" min="24" max="2073600" />
            <Limit name="bitrate" range="1-160000000" />
            <Limit name="frame-rate" range="1-480" />
            <Limit name="concurrent-instances" max="16" />
            <Limit name="performance-point-4096x2304" value="56" />
            <Limit name="performance-point-4096x2160" value="60" />
            <Limit name="performance-point-3840x2160" value="60" />
            <Limit name="performance-point-1920x1080" value="240" />
            <Limit name="performance-point-1280x720" value="480" />
            <Feature name="bitrate-modes" value="VBR,CBR" />
            <Feature name="intra-refresh" />
        </MediaCodec>
        <MediaCodec name="c2.qti.hevc.encoder.cq" type="video/hevc">
            <Limit name="size" min="96x96" max="512x512" />
            <Limit name="alignment" value="2x2" />
            <Limit name="block-size" value="16x16" />
            <Limit name="blocks-per-second" min="24" max="2073600" />
            <Limit name="bitrate" range="1-160000000" />
            <Limit name="frame-rate" range="1-480" />
            <Limit name="concurrent-instances" max="16" />
            <Limit name="quality" range="0-100" default="80" />
            <Limit name="performance-point-512x512" value="480" />
            <Feature name="bitrate-modes" value="VBR,CBR,CQ" />
        </MediaCodec>
        <MediaCodec name="c2.qti.heic.encoder" type="image/vnd.android.heic">
            <Limit name="size" min="96x96" max="8192x8192" />
            <Limit name="block-count" range="1024-138240" /> <!--max-spatial: 8192x4320 -->
            <Limit name="blocks-per-second" min="24" max="2073600" />
            <Limit name="frame-rate" range="1-480" />
            <Limit name="concurrent-instances" max="6" />
            <Limit name="quality" range="0-100" default="80" />
            <Limit name="performance-point-8192x4320" value="3" />
            <Limit name="performance-point-4096x2304" value="12" />
            <Limit name="performance-point-1920x1080" value="40" />
            <Limit name="performance-point-1920x1080" value="30" />
            <Limit name="performance-point-1280x720" value="80" />
            <Limit name="performance-point-1280x720" value="60" />
            <Feature name="bitrate-modes" value="CQ" />
        </MediaCodec>
        <MediaCodec name="c2.qti.vp8.encoder" type="video/x-vnd.on2.vp8">
            <Alias name="OMX.qcom.video.encoder.vp8" />
            <Limit name="size" min="96x96" max="4096x4096" />
            <Limit name="block-count" range="36-36864" /> <!--max-spatial: 4096x2304 -->
            <Limit name="alignment" value="2x2" />
            <Limit name="block-size" value="16x16" />
            <Limit name="blocks-per-second" min="24" max="1036800" />
            <Limit name="bitrate" range="1-40000000" />
            <Limit name="frame-rate" range="1-240" />
            <Limit name="concurrent-instances" max="16" />
            <Limit name="performance-point-4096x2304" value="24" />
            <Limit name="performance-point-4096x2160" value="30" />
            <Limit name="performance-point-3840x2160" value="30" />
            <Limit name="performance-point-1920x1080" value="120" />
            <Limit name="performance-point-1280x720" value="240" />
            <Feature name="intra-refresh" />
        </MediaCodec>
    </Encoders>
</Included>
